<?php

function espanol($texto) //REPARA CUALQUIER TEXTO A UTF-8
{
$texto = htmlentities($texto , ENT_QUOTES); //No permite codigo HTML
$texto = str_replace("\r","<br />",$texto); //Asignar codigo espacios
$texto = utf8_encode($texto); //ENCODE A UTF-8
$texto = iconv("ISO-8859-1" , "UTF-8", $texto); // Convierte ISO-8859-1 UTF-8
return $texto;
}

require_once('../connections/Infinitus.php');

echo "<br>";
echo "<br>";
echo date( "j - n - Y" );
echo "<br>";
echo "<br>";

//Nos conectamos a la base de datos
mysql_select_db($database_Infinitus, $Infinitus);

session_start();
$_SESSION['percent'] = 0;

$iAvance =0;
$texto_correo_estadisticas="Reporte de envio:";

//Verificamos si existen trabajos por realizar
$cantidad_correos_pendientes_enviar = VerificarSiExisteTrabajosPendientes();
if($cantidad_correos_pendientes_enviar>0)
{
	$total_loops = $cantidad_correos_pendientes_enviar;
	////////////////////////////////////////////////////////
	//Begin function : VerificarSiExisteTrabajosPendientes//
	////////////////////////////////////////////////////////
	include('../phpmailer-gmail/class.phpmailer.php');
	include('../phpmailer-gmail/class.smtp.php');

	//Creando clase para conectar envio de correos
	$mail = new PHPMailer();
	$mail->IsSMTP();

	//Tomando los datos de campaas
	$query_rsCampanasDisponibles = "SELECT idcampanna,titulo,minombre,micorreo,asunto_correo_inicial , html_correo_inicial , url_enlace_afiliados , smtp_servidor, smtp_puerto, smtp_usuario, smtp_clave , smtp_usar_ssl FROM infinitus_campannas ;";
	$rsCampanasDisponibles = mysql_query($query_rsCampanasDisponibles) or die("Activando -> Campannas = ".mysql_error());
	$row_rsCampanasDisponibles = mysql_fetch_assoc($rsCampanasDisponibles);

	do {
		$texto_correo_estadisticas .="---------------------------------------";
		$texto_correo_estadisticas .="Campaa ->".trim($row_rsCampanasDisponibles['titulo']);
		$texto_correo_estadisticas .="<br>";
		$texto_correo_estadisticas .="Fecha :".date( "j - n - Y" );
		$texto_correo_estadisticas .="<br>";
		$texto_correo_estadisticas .="Hora :".date('H:i:s');
		$texto_correo_estadisticas .="<br>";
		
		$cantidad_correo_enviado =0;

		//Datos para conexion de correo
		$correo_enviar_desde  = trim($row_rsCampanasDisponibles['micorreo']);
		$correo_smtp_servidor = trim($row_rsCampanasDisponibles['smtp_servidor']);
		$correo_smtp_puerto   = trim($row_rsCampanasDisponibles['smtp_puerto']);
		$correo_smtp_usuario  = trim($row_rsCampanasDisponibles['smtp_usuario']);
		$correo_smtp_clave    = trim($row_rsCampanasDisponibles['smtp_clave']);
		$correo_smtp_usar_ssl = trim($row_rsCampanasDisponibles['smtp_usar_ssl']);

		//Creando clase para conectar envio de correos
		$mail->SMTPAuth = true;
		$mail->SMTPSecure = "ssl";
		$mail->Host = $correo_smtp_servidor;
		$mail->Port = $correo_smtp_puerto;
		$mail->Username = $correo_enviar_desde;
		$mail->Password = $correo_smtp_clave;
		$mail->From = $correo_enviar_desde;

		//Tomando los datos de correos
		$query_rsCorreosProgramados = "SELECT idcorreo,asunto,cuerpo_correo_texto, cuerpo_correo_html,secuencia_dias FROM infinitus_correos WHERE idcampanna=".$row_rsCampanasDisponibles['idcampanna'].";";
	
		$rsCorreosProgramados = mysql_query($query_rsCorreosProgramados) or die("Activando -> Correos = ".mysql_error());
		$row_rsCorreosProgramados = mysql_fetch_assoc($rsCorreosProgramados);

		if(mysql_num_rows($rsCorreosProgramados)>0){
			//Recorremos todos los correos verificando si existen usuarios activos
			do{
				$query_rsUsuariosPendientes = "SELECT wp_users.ID,wp_users.user_login,wp_users.user_email FROM wp_users WHERE wp_users.idcampanna=".$row_rsCampanasDisponibles['idcampanna']." AND wp_users.mensajes_enviados NOT LIKE '%#".trim($row_rsCorreosProgramados['idcorreo'])."#%' AND DATEDIFF(DATE(NOW()),DATE(wp_users.fecha_suscripcion))=".trim($row_rsCorreosProgramados['secuencia_dias']).";";
		
				echo "<br>";
				//echo "Cadena usuario ->".$query_rsUsuariosPendientes."<br><br>";
				$rsUsuariosPendientes = mysql_query($query_rsUsuariosPendientes) or die("Activando -> Usuarios = ".mysql_error().$query_rsUsuariosPendientes);
				$row_rsUsuariosPendientes = mysql_fetch_assoc($rsUsuariosPendientes);
				$totalRows_rsUsuariosPendientes = mysql_num_rows($rsUsuariosPendientes);
				
				$html_mensaje_top ='<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title>Infinitus Mail - Envio de correos a todo el mundo</title>
	<meta content="text/html; charset=utf-8" http-equiv="content-type" /></head>
<body>';

				$html_mensaje_bot ='</body></html>';
				//Si existen correos para enviar, recorremos cada usuario..!!!
				if($totalRows_rsUsuariosPendientes>0){
					do {
						//Reemplazando las variables generales por los valores personalizados
						$asunto_personalizado = str_replace("[NOMBRE]" , trim($row_rsUsuariosPendientes['user_login']) , html_entity_decode($row_rsCorreosProgramados['asunto']));
		
						$cuerpo_personalizado = str_replace("[NOMBRE]",$row_rsUsuariosPendientes['user_login'],trim($row_rsCorreosProgramados['cuerpo_correo_html']));
						$enlace_personalizado = '<a href="'.trim($row_rsCampanasDisponibles['url_enlace_afiliados']).'" target="_blank">'.trim($row_rsCampanasDisponibles['url_enlace_afiliados']).'</a>';
	
						$cuerpo_personalizado = str_replace("[ENLACE AFILIADO]",$enlace_personalizado,$cuerpo_personalizado);

						//$inicio_enlace=strpos($cuerpo_personalizado, "/AS#");
						//$fin_enlace=strpos($cuerpo_personalizado, "#AS/");

						//$codigo_enlace = substr($cuerpo_personalizado,$inicio_enlace,$fin_enlace-$inicio_enlace+4);
						//$texto_enlace = $codigo_enlace;
						//$texto_enlace = str_replace("/AS#","",$texto_enlace);
						//$texto_enlace = str_replace("#AS/","",$texto_enlace);
						//$texto_enlace = str_replace("&iu=0","&iu=".$row_rsUsuariosPendientes['ID'],$texto_enlace);
						//$enlace_autosuscripcion_final = '<a href="http://'.$_SERVER['HTTP_HOST'].'/ar/as.php?'.$texto_enlace.'">CLICK AQUI...</a>';

						//$cuerpo_personalizado = str_replace($codigo_enlace, $enlace_autosuscripcion_final, $cuerpo_personalizado);

						//Agregando la direccion de suscriptor activo
						$mail->FromName = $row_rsCampanasDisponibles['minombre'];
						$mail->Subject = $asunto_personalizado; //Sujeto
						$mail->AltBody = ""; //Mensaje en Texto

						//Para comprender los caracteres especiales
						//$strHtml = trim($cuerpo_personalizado);
						//$caracteres = utf8_decode($strHtml);
						//$caracteresHtml = htmlentities($caracteres);

						$a = htmlentities($cuerpo_personalizado);
						$bHtml = html_entity_decode($a);

						$mail->MsgHTML($html_mensaje_top.$bHtml.$html_mensaje_bot ); //Mensaje Html
						//$mail->MsgHTML(html_entity_decode($cuerpo_personalizado)); //Mensaje Html
						$mail->AddAddress($row_rsUsuariosPendientes['user_email'], $row_rsUsuariosPendientes['user_login']);
						$mail->IsHTML(true);
		
						//Enviando correo
						if(!$mail->Send()){
							echo "Error: " . $mail->ErrorInfo."<br>";
						} else {
							$cantidad_correo_enviado .=1;
							ConfirmarEnvioaUsuario($row_rsCampanasDisponibles['idcampanna'],$row_rsCorreosProgramados['idcorreo'],$row_rsUsuariosPendientes['user_email']);
							//echo "Mensaje enviado".$row_rsUsuariosPendientes['user_email']."<br>";
						}
	
						$iAvance = $iAvance+1;
						$percent = ($iAvance / $total_loops) * 100;
						usleep(50000);
						session_start();
						$_SESSION['percent'] = number_format($percent, 0, '', '');
						$_SESSION['message'] = trim($row_rsUsuariosPendientes['user_email']);
						session_commit();
	
						$mail->ClearAddresses();
		
					} while ($row_rsUsuariosPendientes = mysql_fetch_assoc($rsUsuariosPendientes)) ;
				}
				mysql_free_result($rsUsuariosPendientes);
		
			} while ($row_rsCorreosProgramados = mysql_fetch_assoc($rsCorreosProgramados)) ;
		}//Si existen correos en la campaa

		mysql_free_result($rsCorreosProgramados);

		$texto_correo_estadisticas .="Correos enviados :".$cantidad_correo_enviado;
		$texto_correo_estadisticas .="<br>";

	} while ($row_rsCampanasDisponibles = mysql_fetch_assoc($rsCampanasDisponibles)) ;
	mysql_free_result($rsCampanasDisponibles);
	//End function flushmail//
	session_commit();
	
	echo "Mensajes enviados ->".$cantidad_correo_enviado;

}else{
	$total_loops = 1;
	session_start();
	$iAvance =1;
	$percent = ($iAvance / $total_loops) * 100;
	usleep(50000); // pretend to be working on something
	$_SESSION['percent'] = number_format($percent, 0, '', ''); // update session var
	$_SESSION['menssage'] = 100;
	session_commit();
}

mysql_close($Infinitus);




/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Begin function : VerificarSiExisteTrabajosPendientes
function VerificarSiExisteTrabajosPendientes()
{
	require_once('../connections/Infinitus.php');

	$cantidad_correos_pendientes_enviar=0;

	//Tomando los datos de campaas
	$query_rsCampanasDisponibles = "SELECT idcampanna,minombre FROM infinitus_campannas ;";
	$rsCampanasDisponibles = mysql_query($query_rsCampanasDisponibles) or die("Verificacion -> Campannas = ".mysql_error());
	$row_rsCampanasDisponibles = mysql_fetch_assoc($rsCampanasDisponibles);
	$totalRows_rsCampanasDisponibles = mysql_num_rows($rsCampanasDisponibles);

	if($totalRows_rsCampanasDisponibles>0){
		do {
			//Tomando los datos de correos
			$query_rsCorreosProgramados = "SELECT idcorreo , secuencia_dias FROM infinitus_correos WHERE idcampanna=".$row_rsCampanasDisponibles["idcampanna"].";";
	
			$rsCorreosProgramados = mysql_query($query_rsCorreosProgramados) or die("Verificacion -> Correos = ".mysql_error().$query_rsCorreosProgramados);
			$row_rsCorreosProgramados = mysql_fetch_assoc($rsCorreosProgramados);
			$totalRows_rsCorreosProgramados = mysql_num_rows($rsCorreosProgramados);
		
			if($totalRows_rsCorreosProgramados>0)
			{
				//Recorremos todos los correos verificando si existen usuarios activos
				do {
					$query_rsUsuariosPendientes = "SELECT wp_users.fecha_suscripcion,DATEDIFF(DATE(NOW()),DATE(wp_users.fecha_suscripcion)) FROM wp_users WHERE wp_users.idcampanna=".$row_rsCampanasDisponibles["idcampanna"]." AND wp_users.mensajes_enviados NOT LIKE '%#".trim($row_rsCorreosProgramados['idcorreo'])."#%' AND DATEDIFF(DATE(NOW()),DATE(wp_users.fecha_suscripcion))=".trim($row_rsCorreosProgramados['secuencia_dias']).";";
			
					//Extraemos la informacion de todos los usuarios que aplican para ser enviados.
					$rsUsuariosPendientes = mysql_query($query_rsUsuariosPendientes) or die("Verificacion -> Usuarios Pendientes = ".mysql_error());
					$totalRows_rsUsuariosPendientes = mysql_num_rows($rsUsuariosPendientes);
			
					if($totalRows_rsUsuariosPendientes>0){
						$cantidad_correos_pendientes_enviar .=$totalRows_rsUsuariosPendientes;
						echo "Usuarios pendientes en campanna ->".$row_rsCorreosProgramados['idcorreo']."=".$totalRows_rsUsuariosPendientes."<br>";
					}
	
					mysql_free_result($rsUsuariosPendientes);
	
				} while ($row_rsCorreosProgramados = mysql_fetch_assoc($rsCorreosProgramados)) ;
			}else{
				echo "No existen correos en campaas : ".$totalRows_rsCorreosProgramados."<br>"."<br>";
			}
			mysql_free_result($rsCorreosProgramados);
	
		} while ($row_rsCampanasDisponibles = mysql_fetch_assoc($rsCampanasDisponibles)) ;
		mysql_free_result($rsCampanasDisponibles);
	}

return $cantidad_correos_pendientes_enviar;
}
//End function : VerificarSiExisteTrabajosPendientes//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////




////////////////////////////////////////////////////////
//Begin function : ConfirmarEnvioaUsuario             //
////////////////////////////////////////////////////////
function ConfirmarEnvioaUsuario($idcampanna,$idcorreo,$idcorreousuario)
{
	include_once("../connections/Infinitus.php");

	$updateConfirmarEnvioSQL = "UPDATE wp_users SET mensajes_enviados = CONCAT(mensajes_enviados , ' #".$idcorreo."#') WHERE idcampanna=".$idcampanna." AND user_email='".$idcorreousuario."';";

	//echo "Sql =".$updateConfirmarEnvioSQL;
	$UpdateConfirmacion=mysql_query($updateConfirmarEnvioSQL);
}
////////////////////////////////////////////////////////
//End function : ConfirmarEnvioaUsuario               //
////////////////////////////////////////////////////////
?>